浅谈滴滴需求响应式公交背后的技术
桔妹导读:所谓需求响应式公交,就是根据用户出行需求,提供非固定路线的、能够实时拼单的公交系统。目前滴滴动态公交可通过灵活调配运力、实时规划行驶路线,为用户提供经济、直达、有座、高效的响应式公交服务。
目前,全国每天约有2.5亿人次选择公共出行。滴滴本着让出行更美好的愿景,依靠掌握的高质量的交通大数据的优势,不断思索改进公共出行领域的解决方案,积极配合交管部门等合作伙伴一起用技术力量改善城市交通,普惠大众出行。
在此背景下,滴滴需求响应式公交服务应运而生。其根据用户的个性化出行需求灵活调整运力,针对客流和虚拟站点实时计算最优路径,快速进行公交运力资源动态调配,实现全局效率最优。可有效弥补传统公交在特定区域、特定时段内,运力和需求不匹配的问题,提升公共交通运行效率,有效满足乘客出行的多元需求,有效提升用户公共出行体验,增加公共交通可达性。目前该业务已在青岛、西安等多座城市落地,为用户提供经济、直达、有座、少步行的响应式公交服务。
在ToG、ToB的合作过程中,滴滴创新公交团队主要致力于输出产品技术能力,赋能B端,孵化多场景下多样化的产品解决方案。公共出行的细分场景比较多样化,有通勤、定点疏散、商务、旅游、城际等类枢纽场景,有社区、产业园、大学城等类微循环场景,不同场景下可设计出不同的公交产品模式。同时需要一整套的运营体系来支持产品的运转,若各B端自研,成本高、周期长、风险大。和滴滴需求响应式公交技术平台产品对接,可大大降低合作方成本,加速产品落地。同时助力提升公共出行信息化、网约化水平,让乘客便捷获取实时、准确的出行信息,让运营主体实时监控车辆运营状态、及时了解用户诉求。
下图是一个客运站枢纽疏散场景,开通分时段班次动态线路。青岛西站出站乘客呼叫预约,系统根据不同上下车站点,动态聚合,规划动态路线,将乘客疏散到下边的大片区域。
为了表达多样化的产品运营形态,我们升维了线站模型,从目前行业內以线为主,升级拓展为网状结构,配合站站通达性约束图,打开线路的表达空间,能创造出更多可能的灵活线路形态。
公交的运营主体是各地的公交集团、客运公司、小范围的园区、社区管委会等。不同的运营主体,根据自身的需要,运营特点以及当地交通规则以及实际情况,会设计差异化的线路约束。
比较典型的线路通达性设计约束有:
部分或全部站点可能要求有相对站序,不允许逆站序行驶,通常见于火车站到市区,机场到市区的这种集散地疏散场景。
要求设置一个或多个必经站,通常见于旅游景区、车站、学校等。
允许系统动态微调乘客下单的上车站点,以提升车辆的运营效率,比如将乘客的上车站点修改到马路对面,通常见于园区,或者城区无方向的微循环场景,减少车辆的调头。
特殊情况下,站点之间的路径轨迹要按照运力方实际线下经验规划的路径来设置,而不是按照导航服务的动态推荐线路来规划。
类似的场景还有很多。从功能上看,似乎都是互不相关的定制化需求,但是从技术层面,我们可以把这些需求都统一抽象成一个特殊有向图的表达。如果需要站点相对有序,我们可以通过配置站点的连通性,来达到同样的效果。如果需要换站,我们可以通过训练和挖掘手段,来找出可以换站条件的站点,并通过引擎算法的支撑来实现最终的效果。
通过配置,挖掘,训练等手段,构造出一个特殊有向图结构,并且运用到引擎内,最终转化成不同“定制化”需求,我们称之为需求响应式公交的线网模型。
针对实际情况,我们提炼出了静态和动态两种调度模式。
静态调度:根据分时段客流量以及方向分布,还有分时段路况等信息规划运力或者班次投入计划。并且利用智能算法,综合考虑司机工作时长要求、疲劳驾驶、休息周期、驾驶表现,以及车辆续驶里程、加油充电周期、全程用时等相关信息,智能计算推荐排班,然后人工快速选择和校正,高效产生最优排班计划。
上图是一个简单的示意图,途中,B1,B2车辆已经分配行程任务,正在执行既有行程,有2个未分配行程的车辆B3和B4,实时在线等待派发任务,同时在该时刻我们聚合形成了一个新的行程,后续出现的订单可以继续在行程上聚合拼单,同时告知用户,行程已经拼成,车辆信息稍后告知但是暂时没有合适的车。我们会根据运力规则,路况,预测发单情况去实时更新最合适的车辆,最终指定车辆B4去执行该未分配车辆的行程。
整个系统的架构简图如下:
10. 拼单和规划引擎
假设某个场景下有M辆车、N个订单同时拼单,可能的组合方案(车单无序组合)会有
种;另,某个方案上有K辆车拼成,某辆车上有Q个订单,则该方案下的解会有
种组合;则,理论上,M车N单可能的组合方案数级别为:
如此规模的VRP问题,暴力检索是不可想象的。小规模区域下,可以通过传统运筹学范畴的算法精确求解;当针对区域规模较大时,精确求解是不切实际的,需要寻找合理的智能算法,既要考虑搜索性能,也要合理规避陷入局部最优。为了更好的应对这种NP-难问题,寻找更好的次优解是我们解决问题的关键。
动态公交VRP问题,有它独特的限制要求(车载量限制、用户时间窗限制、站点顺序限制等等),这种情况下一个合理的初始解很重要,能够较大程度上缩减搜索规模,这里我们可以结合拼单逻辑,启发式生成初始解;搜索过程中引入禁忌表避免重复操作;采用变领域搜索避免陷入局部最优等等,在集中性和疏散性之间达到较好的平衡。另外,目标函数决定了搜索的方向,如何设计合理的目标函数,如何平衡拼单率和体验之间的关系,一直是我们探索的方向。目前我们也在布局通过机器学习智能推荐合理站点、引导车辆合理分布等供需自动平衡方案。同时我们也在利用已有的历史订单数据和用户行为数据通过深度学习的方法积极搭建我们的仿真系统,为针对不同运营区域独立建模搭建基础。
11. 开放平台
出于赋能公交行业的目的, 除支持滴滴主app呼单外,我们还提供一个开放平台合作模式,依靠开放平台客户可以更加自主化的实现自身需求。
公交是一个多方合作的业务,技术平台以开放平台的模式来构建。使用开放api的方式,支持了多种方式的合作可能,运营方可以直接在滴滴app上运营产品,也可以通过我们提供的开放api和sdk接入到自有系统和app产品运营。
目前我们的产品和系统还有很多不完善的地方,也面对着很多的技术难点,欢迎大家对我们提出您宝贵的意见,帮助我们更好的成长,谢谢。
梦在远方,路在脚下,我们致力于为您提供最佳公共出行解决方案!
本文作者
▬
2016年加入滴滴,创新公交负责人,主要负责动态公交整体业务架构设计。
2016年加入滴滴,创新公交负责人,主要负责动态公交整体业务架构设计。
2018年加入滴滴,主要负责创新公交乘客端后端、开放平台和仿真平台等工作。
2018年加入滴滴,主要负责创新公交乘客端后端、开放平台和仿真平台等工作。
2016年加入滴滴,主要负责动态公交的司机端后端和规划引擎等工作。
2016年加入滴滴,主要负责动态公交的司机端后端和规划引擎等工作。
2019年加入滴滴,主要负责动态公交规划引擎和可视化平台等工作。
2019年加入滴滴,主要负责动态公交规划引擎和可视化平台等工作。
团队招聘
▬
滴滴地图与公交事业部创新公交团队,依托滴滴地图导航技术和基础数据能力,使用机器学习和智能优化方法等技术,致力于为用户提供灵活、高效的公共出行解决方案。
团队长期招聘研发工程师,包括前端、后端、引擎策略等方向,欢迎有兴趣的小伙伴加入,可投递简历至 diditech@didiglobal.com,邮件请邮件主题请命名为「姓名-应聘部门-应聘方向」。
扫描了解更多岗位